home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / New System Software Extensions / OpenDoc A6 / OpenDoc Parts Framework / OPF / Examples / Text / Include / TextFacet.h < prev    next >
Encoding:
Text File  |  1994-04-21  |  3.1 KB  |  120 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                            TextFacet.h
  4. //    Release Version:    $ 1.0d1 $
  5. //
  6. //    Author:                        Anthone Burbidge
  7. //    Creation Date:        3/28/94
  8. //
  9. //    Copyright:    © 1993, 1994 by Apple Computer, Inc., all rights reserved.
  10. //
  11. //========================================================================================
  12.  
  13. #ifndef _TEXTFACET_
  14. #define _TEXTFACET_
  15.  
  16. // ----- Textension Includes -----
  17.  
  18. #ifndef _TextensionCommon_
  19. #include "TextensionCommon.h"
  20. #endif
  21.  
  22. // ----- Framework Includes -----
  23.  
  24. #ifndef FWFACET_H
  25. #include "FWFacet.h"
  26. #endif
  27.  
  28. #ifndef FWDROPTR_H
  29. #include "FWDropTr.h"
  30. #endif
  31.  
  32. //========================================================================================
  33. // Forward class declarations
  34. //========================================================================================
  35.  
  36. class CTextPart;
  37.  
  38.  
  39. //========================================================================================
  40. // CLASS CTextFacet
  41. //========================================================================================
  42.  
  43. class CTextFacet : public FW_CFacet
  44. {
  45. // ----- Construction/destruction
  46. public:
  47.     CTextFacet();
  48.     void InitTextFacet(XMPFacet* facet,
  49.                        CTextPart* textPart);
  50.     virtual ~CTextFacet();
  51.  
  52. // ----- Inherited API
  53. public:
  54.     virtual void             Draw(FW_CGraphicContext *gc);
  55.     virtual FW_Boolean        DoMouseDown(const FW_CPoint& where,
  56.                                          XMPEventData event);
  57.     virtual void            MouseEnter(const FW_CPoint& where);
  58.  
  59. // ----- Drag and drop
  60. public:
  61.     virtual FW_CDropTracker*NewDropTracker(FW_CFacet* facet);
  62.     virtual void            DragEnter(XMPDragItemIterator* dragInfo, const FW_CPoint& where);
  63.     virtual FW_Boolean        DrawDragHiliteInside();
  64.  
  65. // ----- Accessors
  66.     CTextPart* GetTextPart() const;
  67.  
  68. // ----- Fields
  69. private:
  70.     CTextPart*                fTextPart;
  71. };
  72.  
  73. //----------------------------------------------------------------------------------------
  74. // CTextFacet::GetTextPart
  75. //----------------------------------------------------------------------------------------
  76.  
  77. CTextPart* CTextFacet::GetTextPart() const
  78. {
  79.     return fTextPart;
  80. }
  81.  
  82.  
  83. //========================================================================================
  84. // CLASS CTextDropTracker
  85. //========================================================================================
  86.  
  87. class CTextDropTracker : public FW_CDropTracker
  88. {
  89. // ----- Initialization/destruction
  90. public:
  91.     CTextDropTracker();
  92.     virtual ~CTextDropTracker();
  93.     void InitTextDropTracker(CTextFacet* facet);
  94.     
  95. // ----- Tracking
  96.     virtual void BeginTracking(const FW_CPoint& where);
  97.     virtual void ContinueTracking(const FW_CPoint& where);
  98.     virtual void EndTracking(const FW_CPoint& where);
  99.  
  100. // ----- New Methods
  101.     TOffset GetCharOffset(const FW_CPoint& pt) const;
  102.     void DrawCaret(TOffset charOffset);
  103.     CTextPart* GetTextPart() const;
  104.     
  105. // ----- Fields
  106. private:
  107.     TOffset fCharOffset;
  108. };
  109.  
  110. //----------------------------------------------------------------------------------------
  111. // CTextDropTracker::GetTextPart
  112. //----------------------------------------------------------------------------------------#endif
  113.  
  114. CTextPart* CTextDropTracker::GetTextPart() const
  115. {
  116.     return ((CTextFacet *) fFacet)->GetTextPart();
  117. }
  118.  
  119.  #endif
  120.